iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
佛心分享-我的證照是這樣攻略的

老闆,外帶一份 AWS Certified Data Engineer系列 第 12

【Day 12】 Relational Databases Service (RDS) 全託管關聯式資料庫服務

  • 分享至 

  • xImage
  •  

昨天說明了什麼是關聯式資料庫,今天接著來看 AWS 上的資料庫做法。

資料庫的系統 歸誰管?

在雲端上建置資料庫,根據資料庫管理者可以觸及的部分,粗略分成三種:

  1. 裝一台虛擬主機、然後在虛擬主機的作業系統中、再安裝資料庫伺服器。 (俗稱: 自己管的資料庫、Self-managed
  2. 從雲端供應商提供好的介面或指令點按,選定資料庫的品項和版本,不用理睬作業系統、沒有典型的安裝流程,即可得到一台 可以透過資料庫的連結埠 存取資料的資料庫。 (俗稱: 全託管資料庫、Fully Managed
  3. 無伺服器資料庫服務 (Serverless databases

在我看來,通通都是有資料庫程式在運作,只是開在不同人家裡的概念。 都是 AWS 的環境,第一種是「自己的VM」、第二種是「AWS 幫你管理的 VM」、第三種是「共享的 VM 和容器」。 不是在玩文字遊戲喔! 繼續看下去就知道。

本編要講的 RDS 屬於上述第二種!!

RDS

  • 作為營利機構,雲端供應商不會建議你走第一種自建自維護的做法。
  • 老是搬出一些理由說服你:
    1. 你的作業系統要自己管喔!
    2. 作業系統版本會過舊、漏洞要自己修欸!
    3. 你自己裝有比較快嗎?
    4. 數落你還在石器時代
  • 不想用 RDS 的幾個理由
    1. 因為用全託管的 RDS 就是比較貴
    2. 有時候資料庫是給些神奇的系統搭配使用,那個 RDS 定序有時候就沒有想要的版本;然後走 RDS 客製化就是麻煩很多或者根本做不到
    3. 天生喜歡把應用程式和資料庫放在同一台主機上省錢方便(出事的時候,容易一起死)

常考的觀念

  1. shared responsibility model / 共同責任模型
    • https://aws.amazon.com/tw/compliance/shared-responsibility-model/
    • 白話文: 東西用久難免故障,所以如果用 RDS 的話,你就可以專注在程式開發或是資料工程上。 系統壞了就交給 AWS 負責。 AWS 保證會提供你一個可以連線存取的資料庫。 不過如果你只承租 AWS EC2 虛擬主機,自己裝資料庫,要是資料庫出事了,那不關 AWS 的事情。
  2. RDS 的網路問題
    • 前面提到,使用 RDS 的話,也是會需要承租虛擬主機,並且運作在你自己的 VPC 裏頭。
    • 只是你從 EC2 console 中看不到他的存在。
    • 還是需要佔用你的子網路 IP 和產生網路介面卡。
    • 既然是佔用了自己的子網路,如果發生連線異常,請優先檢查子網路的路由表裡面寫了什麼,我認為 87% 的 RDS 連線問題,都可以從這邊看出端倪。
  3. 升版(更新資料庫版本的做法) 就滑鼠點一點而已
  4. 高可用性的實踐方式
    • 高可用的核心精神就是,開很多台,然後分散風險。 所以不能通通擺在同一個 AZ。
    • 然後老王賣瓜的部分,總是拿 Aurora 版本的 RDS 去和 一般版本的 RDS 互比。
      • PostgreSQL
      • MySQL / MariaDB

    Amazon Aurora 提供具有全球規模的無與倫比的高效能和可用性,與 MySQL 和 PostgreSQL 完全相容,而成本卻只有商業資料庫的十分之一。Aurora 具有 MySQL 5 倍的輸送量,以及 PostgreSQL 3 倍的輸送量。Aurora 具有廣泛的合規標準和同類最佳的安全功能。Aurora 讓 3 個可用區域的資料持久耐用,藉此來提供儲存彈性 (客戶只需支付 1 個副本)。Aurora 提供高達 99.99% 的可用性,在 AWS 區域部署時,客戶可使用全球資料庫來存取本機讀取效能。憑藉無伺服器,Aurora 可在一秒鐘內擴展至數十萬筆交易。Aurora 與 Amazon Redshift 的零 ETL 整合可提供近乎即時的交易資料分析。

  5. 備份相關的東西
    • 花樣很多,不勝枚舉,重點都在這裡。 建議先掃過一下老王賣的瓜
    • 自動備份
      • Amazon RDS 的自動備份功能預設為開啟,其會備份您的資料庫和交易日誌。Amazon RDS 會自動建立資料庫執行個體的儲存磁碟區快照,備份整個資料庫執行個體,而不僅僅是個別資料庫。
      • 在每日使用者可設定的 30 分鐘期間會執行此備份,這段期間稱為備份時段。自動備份會保留一個可設定的天數 (稱為備份保留期)。自動備份保留期最長可設定為 35 天。
    • 時間點復原
      • 您可將資料庫執行個體還原至備份保留期間的任何特定時間,以建立新的資料庫執行個體。如要還原資料庫執行個體,您可使用 AWS Console 或命令列介面。
      • 如要判斷資料庫執行個體的最新可還原時間,請使用 AWS Console 或命令列介面,查看資料庫執行個體「LatestRestorableTime」欄位中傳回的值。資料庫執行個體的最近可還原時間通常為目前時間的 5 分鐘內。
    • 資料庫快照
      • 資料庫快照是使用者對在 Amazon S3 中執行個體儲存體的備份,會保留到您明確刪除這些快照為止。您可以在需要時隨時從資料庫快照建立新執行個體。雖然資料庫快照在操作上作為完整的備份使用,但只會針對遞增的儲存使用量計費。
    • 快照複本
      • 您可使用 Amazon RDS,複製資料庫快照和資料庫叢集快照。您可以複製自動或手動快照。複製快照之後的複本即為手動快照。您可在同一個 AWS 區域內複製快照、跨越 AWS 區域複製快照,亦可跨越 AWS 帳號複製快照。
    • 快照共享
      • 您可使用 Amazon RDS,與其他 AWS 帳戶共享手動資料庫快照或資料庫叢集快照。無論是加密或未加密,只要共享手動資料庫快照或資料庫叢集快照,即可讓授權的 AWS 帳戶複製快照。
      • 共享未加密的手動資料庫快照可讓授權的 AWS 帳戶直接從快照還原資料庫執行個體,而不是擷取其副本並從中還原。加密的手動資料庫快照不支援此功能。無論是加密或未加密,共享手動資料庫叢集快照可讓授權的 AWS 帳戶直接從快照還原資料庫叢集,而不是擷取其副本並從中還原。
  6. 資料庫搬遷

結論

  • 這個領域太大,如果只是要應考,看過有個概念就好
  • 實際上還是要以真實世界的問題去累積經驗

上一篇
【Day 11】 關聯式資料庫的概念
下一篇
【Day 13】 NoSQL 非關連式資料庫的基本概念
系列文
老闆,外帶一份 AWS Certified Data Engineer13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言